Sign in With Apple
[toc]
iOS端app授权开发
Apple 登录流程图
iOS端完成1、2步之后,会拿到identityToken
、authorizationCode(授权码)
、userID
、fullName
等字段,然后iOS端完成第3步将获得的identityToken参数传给后端,后端验证这次登录的有效性
后端需要完成4、5步骤,通过向苹果服务器获得公钥来验证iOS端的identityToken
,identityToken
是一个经过加密的JSON Web Token(JWT)字符串。
后端验证用户
基于JWT的算法验证
1.获取苹果公钥:
https://appleid.apple.com/auth/keys
2.接口文档说明:
3.JWT 解析:
4.可以通过判断JWT的用户唯一标识或者有效期来确认identityToken
有效性
iOS端处理 Apple ID 登录状态变化
应为用户通过Apple ID进行登录,所以应该对ID退出登录等情况进行处理。另外用户在利用Apple ID登录后,可以在设置页面删除曾经登录过的应用,类似于解除绑定的操作,这时应用也需要做对应处理。
总结
- 作为一种类似于三方登录的登录方式,后台方面需要关注的是登录状态的验证、账号和 apple userID绑定的逻辑。
- 苹果账号切换、注销等状态会在客户端内处理,并在状态发生变化时登出帐号。